texture1:pointer

Otázka od: P&v

5. 10. 2004 19:29

Ahoj,
  snazim se trochu v openGl a mam problem.
  Textury nacitam podle tutorialu procedurou
  auxDIBImageLoadA do promene tohoto typu:
  
  type TAUX_RGBImageRec= record
    sizeX, sizeY: TGLint;
    data: pointer;
         end;
    PTAUX_RGBImageRec= ^TAUX_RGBImageRec;
  
  Moje zacatecnicka otazka zni, jak mam tyto informace, na nez ukazuje
  "data" pozmenit? Tzn. jak se pracuje s typem obecny pointer? Umim
  pouze typove ukazatele.
  
  Hledal jsem googlem, ale nic nemam.
  
  Pokud si nekdo udela cas na odpoved, budu rad.
  dik, d
  


Odpovedá: Pavol Stugel, NETGraphics

6. 10. 2004 6:48

> Textury nacitam podle tutorialu procedurou
> auxDIBImageLoadA do promene tohoto typu:
>
> type TAUX_RGBImageRec= record
> sizeX, sizeY: TGLint;
> data: pointer;
> end;
> PTAUX_RGBImageRec= ^TAUX_RGBImageRec;
>
> Moje zacatecnicka otazka zni, jak mam tyto informace, na nez ukazuje
> "data" pozmenit? Tzn. jak se pracuje s typem obecny pointer? Umim
> pouze typove ukazatele.

data su formatu RGB, ak nie je alpha , ak je tak staci doplnit...

type
   TRGB24 = record
     R,G,B: Byte;
   end;
   TData = array [0..0]of TRGB24;


potom napr. jednoducho bielu farbu v prvom riadku nastavis takto:

var p: ^TData;
     test: PTAUX_RGBImageRec;
     i: Integer;
begin
   *LoadFromFILE*(test);
   p := test^.data;

   for i := 0 to test^.sizeX -1 do
   with p[i] do
   begin
     r:= 255;g:=255;b:=255;
   end;

end;

ked uz posles texturu do grafickej karty tak uz ju vies zmodifikovat
iba ak ju znova posles ...

palo


Odpovedá: P&v

7. 10. 2004 5:59



> > Textury nacitam podle tutorialu procedurou
> > auxDIBImageLoadA do promene tohoto typu:
> >
> > type TAUX_RGBImageRec= record
> > sizeX, sizeY: TGLint;
> > data: pointer;
> > end;
> > PTAUX_RGBImageRec= ^TAUX_RGBImageRec;
> >
> > Moje zacatecnicka otazka zni, jak mam tyto informace, na nez ukazuje
> > "data" pozmenit? Tzn. jak se pracuje s typem obecny pointer? Umim
> > pouze typove ukazatele.
>
> data su formatu RGB, ak nie je alpha , ak je tak staci doplnit...
>
> type
> TRGB24 = record
> R,G,B: Byte;
> end;
> TData = array [0..0]of TRGB24;
>
>
> potom napr. jednoducho bielu farbu v prvom riadku nastavis takto:
>
> var p: ^TData;
> test: PTAUX_RGBImageRec;
> i: Integer;
> begin
> *LoadFromFILE*(test);
> p := test^.data;
>
> for i := 0 to test^.sizeX -1 do
> with p[i] do
> begin
> r:= 255;g:=255;b:=255;
> end;
>
> end;
>
> ked uz posles texturu do grafickej karty tak uz ju vies zmodifikovat
> iba ak ju znova posles ...
>
> palo
>
>
dik moc, cosi jsem udelal, vecer to vystavim
d


Odpovedá: P&v

7. 10. 2004 17:15

> > Textury nacitam podle tutorialu procedurou
> > auxDIBImageLoadA do promene tohoto typu:
> >
> > type TAUX_RGBImageRec= record
> > sizeX, sizeY: TGLint;
> > data: pointer;
> > end;
> > PTAUX_RGBImageRec= ^TAUX_RGBImageRec;
> >
> > Moje zacatecnicka otazka zni, jak mam tyto informace, na nez ukazuje
> > "data" pozmenit? Tzn. jak se pracuje s typem obecny pointer? Umim
> > pouze typove ukazatele.
>
> data su formatu RGB, ak nie je alpha , ak je tak staci doplnit...
>
> type
> TRGB24 = record
> R,G,B: Byte;
> end;
> TData = array [0..0]of TRGB24;
>
>
> potom napr. jednoducho bielu farbu v prvom riadku nastavis takto:
>
> var p: ^TData;
> test: PTAUX_RGBImageRec;
> i: Integer;
> begin
> *LoadFromFILE*(test);
> p := test^.data;
>
> for i := 0 to test^.sizeX -1 do
> with p[i] do
> begin
> r:= 255;g:=255;b:=255;
> end;
>
> end;
>
> ked uz posles texturu do grafickej karty tak uz ju vies zmodifikovat
> iba ak ju znova posles ...
>
> palo
>

Tak jo. Je to zde:
http://z44.iglu.cz/tex.zip
dik moc